جزوه · چالش سوم فصل چهارم · ساخت ۱۰۰ فایل در یک خط ← بازگشت به فهرست
📘 چالش سوم فصل چهارم ساخت ۱۰۰ فایل در یک خط
📅 تاریخ: چهارشنبه، ۲۸ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی)
⚡ قبل از شروع، یه مثال ساده:

فرض کن می‌خوای ۱۰۰ تا فایل خالی با اسم‌های file1.txt، file2.txt، ... تا file100.txt بسازی. به‌جای اینکه ۱۰۰ بار دستور touch بزنی، می‌تونی با آکولادها و محدوده (Range) توی یه خط همه رو بسازی!

▍ مقدمه

در این چالش، با یکی از قدرتمندترین تکنیک‌های خط فرمان آشنا می‌شوید: ساخت چندین فایل به‌صورت همزمان. با استفاده از محدوده (Range) در آکولادها، می‌توانید صدها فایل را با یک دستور ایجاد کنید.

📌 ابزار اصلی:

touch → ایجاد فایل خالی

محدوده در آکولادها: {start..end} → ایجاد دنباله از شروع تا پایان

▍ دستور اصلی چالش

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ touch yasin{1..70} └─$ ls | head -20 yasin1
yasin10
yasin11
yasin12
yasin13
yasin14
yasin15
yasin16
yasin17
yasin18
yasin19
yasin2
yasin20
yasin21
yasin22
yasin23
yasin24
yasin25
yasin26
yasin27

• توضیح گام‌به‌گام

🧩 گسترش آکولادها:

yasin{1..70}yasin1 yasin2 yasin3 ... yasin70

می‌توانید از هر عددی استفاده کنید: {1..100}، {0..50}، {10..20}

▍ حذف همه فایل‌های ساخته شده

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ rm yasin* └─$ ls (خالی)

توضیح: rm yasin* همه فایل‌هایی که با yasin شروع می‌شوند را حذف می‌کند.

⚠️ توجه:

rm yasin* همه فایل‌های yasin... را حذف می‌کند. اگر فایل مهمی با این نام دارید، قبل از اجرا مطمئن شوید.

▍ مثال‌های پیشرفته

• ساخت ۱۰۰ فایل با پسوند

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ touch file{1..100}.txt

توضیح: file{1..100}.txt فایل‌های file1.txt تا file100.txt را می‌سازد.

• ساخت فایل‌ها با گام (Step)

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ touch yasin{0..100..10}

توضیح: {0..100..10} اعداد ۰، ۱۰، ۲۰، ۳۰، ... تا ۱۰۰ را تولید می‌کند. (فایل‌های yasin0، yasin10، ...)

💡 نکته:

این تکنیک در Zsh و Bash هر دو کار می‌کند. همچنین می‌توانید از حروف نیز استفاده کنید: {a..z}

▍ ترکیب با دستورات دیگر

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ for i in {1..100}; do echo "Hello $i" > "file$i.txt"; done

توضیح: این دستور ۱۰۰ فایل file1.txt تا file100.txt می‌سازد و داخل هرکدام Hello 1 تا Hello 100 می‌نویسد.

🧪 چالش شما:

با استفاده از touch و آکولادها، ۵۰ فایل با نام‌های data1.log تا data50.log بسازید.

touch ________________________________
✅ پاسخ تمرین:
┌──(ya3in㉿kali)-[~] └─$ touch data{1..50}.log

توضیح: این دستور ۵۰ فایل با نام‌های data1.log تا data50.log می‌سازد.

📌 خلاصه:
  • touch name{start..end} → ساخت فایل‌های با شماره
  • touch name{start..end..step} → ساخت فایل‌ها با گام
  • rm name* → حذف همه فایل‌هایی که با name شروع می‌شوند
  • با یک دستور می‌توانید صدها فایل بسازید.